Secured cross platform networked multiplayer communication and game play

ABSTRACT

A user of a software application (e.g., game or title) running at a gaming console may interact securely in real-time with a user of a compatible software application running at a general purpose computing device. Thus, a game player on the gaming console may play online over a secured communication channel with a game player on a PC, for example.

BACKGROUND

Software applications, such as first-person shooter (FPS) games, areavailable for both gaming consoles (e.g., Microsoft Corporation's Xbox360™) and personal computers (PCs). However, gaming consoles have notbeen able to communicate across a network connection with PCs.Therefore, for example, gaming consoles have not been able to playonline video games with PCs.

Xbox Live™ is an online multiplayer gaming and content delivery systemcreated and operated by Microsoft Corporation. Microsoft's LiveAnywhere™ enables a variety of non-Xbox platforms such as a PC andmobile phones to connect to Xbox Live, though with lesser functionality.For example, cross-platform play is not available, such that PC playerscannot compete against Xbox 360 players.

SUMMARY

A user of a software application (e.g., game or title) running at agaming console may interact securely in real-time with a user of acompatible software application running at a general purpose computingdevice, such as a PC. Thus, a game player on the gaming console may playonline with a game player on a PC. The gaming console may securelycommunicate with the general purpose computing device either via aclearinghouse or directly via a local area network (LAN) connection, forexample.

The stack and ports are set to accommodate the cross-platform features.Additionally, a secure key exchange is provided, as well as big-endianand little-endian byte ordering.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary cross-platform networkedsystem.

FIG. 2 is a block diagram of another exemplary cross-platform networkedsystem.

FIG. 3 is a flow diagram of an example port selection technique.

FIG. 4 is a diagram of an example key exchange process for aclearinghouse embodiment.

FIG. 5 is a diagram of an example key exchange process for a LANembodiment.

FIG. 6 depicts an exemplary operating environment.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of an exemplary cross-platform system in whicha gaming console 10 is networked to a general purpose computing device30, via a clearinghouse 20. The gaming console 10 may be any computingdevice that supports online gaming. For example, the gaming console 10may be a personal computer (PC) loaded with one or more online gametitles. The gaming console 10 may be a handheld device, and may beenabled for use with one or more game titles. A game title may be adiscrete application that may be loaded and run on the gaming console10.

Typically, a user may possess a number of game titles. The user may loadand run an individual game title onto the gaming console 10 to play anonline game with other users that have loaded and run the same gametitle on their respective gaming console or computing device.

The gaming console 10 is desirably a game-specific console, such asMicrosoft Corporation's Xbox 360™ for example, and the general purposecomputing device 30 is desirably a PC, handheld device, or mobile phone,for example. The clearinghouse 20 may be an online multiplayer gamingand content delivery service or system, for example, such as Xbox Live™.The gaming console 10 and the computing device 30 may each be incommunication with the clearinghouse 20 via the internet or anothernetwork, for example. It is also contemplated that the computing device30 may be another type of gaming console, different from the gamingconsole 10. In this manner, two different types of gaming consoles maycommunicate with each other.

The clearinghouse 20 desirably has its own network stack protocol thatallows for secure internet access. The network stack protocol, describedfurther below, is used by the gaming console 10, and also by thecomputing device 30, such that the computing device 30 has code that hasthe same protocol as the clearinghouse 20. The protocol can talkcross-platform between the gaming console 20 and the computing device30.

It is contemplated that multiple stack protocols (e.g., protocol A 22and protocol B 23) may be used by the clearinghouse 20. In this manner,the gaming console 10 may communicate with the clearinghouse 20 using afirst protocol (e.g., protocol A), and the computing device 30 maycommunicate with the clearinghouse 20 using a second protocol (e.g.,protocol B). The gaming console 10 and the computing device 30 may alsocommunicate directly with each other, e.g., after the clearinghouse 20initially gets them matched together, using another protocol (e.g.,protocol C).

There is a key exchange that includes platform type (e.g., gamingconsole, PC, etc.) so that trust can be achieved. The platform type maybe included in the key exchange message, and may be sent through theclearinghouse 20 which verifies that the device is a gaming console or aPC, for example. Key exchange is described further below.

FIG. 2 is a block diagram of an exemplary system in which a gamingconsole 10 is networked to a general purpose computing device 30, notvia a clearinghouse 20 as in FIG. 1, but directly via a local areanetwork (LAN) connection, for example.

A LAN connection allows gaming consoles to connect directly to eachother without having to go through the clearinghouse. The protocol forestablishing the connection is different from establishing a connectionto a console via the clearinghouse. Instead of going through theclearinghouse, the console sends a broadcast packet out and awaits aresponse, for example. Desirably, the broadcast packets are encryptedusing a shared key.

Thus, a user of a software application (e.g., game or title) running atthe gaming console may interact in real-time with a user of the samesoftware application running at the computing device. As a result, agame player on a gaming console may play online with a game player on aPC.

Although one gaming console 10 and one computing device 30 are shown inFIGS. 1 and 2, it is contemplated that multiple consoles 10 andcomputing devices 30 may be networked together, via a clearinghouse,LAN, or other means.

On the general purpose computing device, multiple processes may runsimultaneously, such as when multiple dedicated server instances arerunning, or when a gaming dashboard is running as a separateapplication. Therefore, each process or application may need its ownbroadcast port and perhaps a different game data port.

An IP broadcast is transmitted to a specific port of the general purposecomputing device, which can be title specific and possibly configured bythe user. Thus, each title can default to a port of its choice or couldoffer the user a choice of port to use.

FIG. 3 is a flow diagram of an example port selection technique in a LANconnection configuration. At step 200, a game title or other applicationis activated on a general purpose computing device. At step 210, thecomputing device determines which port to use. The port may be based onthe game title or application that has been activated, or may be set bya user. At step 220, the computing device sets the port accordingly.

The port used in the computing device for cross-platform networked gameplay may be different from the port using on a gaming console. It iscontemplated that the port on the gaming console may vary depending ongame title or user configuration, for example.

On a gaming console or computing device, cross-platform communicationmay or may not be allowed by a particular application. A clearinghousedesirably enforces whether or not cross-platform communication isallowed.

Secure key exchange is desirably performed. For embodiments which use aclearinghouse, an example connection protocol desirably requires thatall connections between the clients (gaming consoles and general purposecomputing devices) require a key exchange. Packets are inspected todetermine whether they were from a general purpose computing device. Ifso, that information is indicated to the clearinghouse or otherdestination so that it can handle the data differently, if desired.

FIG. 4 is a diagram of an example key exchange process for aclearinghouse embodiment, and shows a client 400, such as a game client,in communication with a clearinghouse authentication and key servers420, and a clearinghouse gateway server 430. The authentication serverand the key server may be separate entities or may be part of the sameentity.

The game client 400 sends login credentials 405 to the clearinghouseauthentication and key servers 420. The clearinghouse authentication andkey servers 420 authenticates the client and responds with aclearinghouse ticket 425 and a pointer 427 to the clearinghouse gatewayserver 430. The game client 400 may then connect to the clearinghousegateway server 430 to use the clearinghouse services.

FIG. 5 is a diagram of an example key exchange process for a LANconnection embodiment. FIG. 5 shows a game client 500 that acts as ahost and another game client 550. The clients may be in communicationover a LAN subnet, for example. Additional game clients are contemplatedon the network, although they are not shown.

The host game client 500 broadcasts an encrypted communication of itsexistence and availability 505. The game client 550 decrypts thebroadcast and responds with an encrypted broadcast to join the game 510.The host game client 500 decrypts and accepts the join request andinitiates a unicast key negotiation 515. The game clients 500, 550desirably unicast with each other 520, encrypting their communicationswith the negotiated unicast key to carry out the game session. Incomputer networks, unicast is the sending of information packets to asingle destination. Other implementation techniques are contemplated,based, for example, on the protocols that are to be used.

Regarding byte ordering, in computing, endianness is the ordering usedto represent some kind of data as a sequence of smaller units. Typicalcases are the order in which integer values are stored as bytes incomputer memory (relative to a given memory addressing scheme) and thetransmission order over a network. Regarding bytes, endianness is alsoreferred to as byte order.

Most computer processors simply store integers as sequences of bytes, sothat, conceptually, the encoded value can be obtained by simpleconcatenation. For an n-byte integer value this allows n! possiblerepresentations (one for each byte permutation). The two most common ofthem are increasing numeric significance with increasing memoryaddresses, known as little-endian, and its opposite, called big-endian.

All computer architectures are either big-endian or little-endian.Big-endian architectures are found in Microsoft's Xbox 360 and IBM'sPower PC, for example. Intel x86 processors (and their clones) use thelittle-endian format.

FIG. 6 and the following discussion are intended to provide a briefgeneral description of a suitable computing environment in which thepresent invention and/or portions thereof may be implemented. Althoughnot required, the invention is described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer, such as a client workstation or a server.Generally, program modules include routines, programs, objects,components, data structures and the like that perform particular tasksor implement particular abstract data types. Moreover, it should beappreciated that the invention and/or portions thereof may be practicedwith other computer system configurations, including hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

As shown in FIG. 6, an exemplary general purpose computing systemincludes a conventional personal computer 120 or the like, including aprocessing unit 121, a system memory 122, and a system bus 123 thatcouples various system components including the system memory to theprocessing unit 121. The system bus 123 may be any of several types ofbus structures including a memory bus or memory controller, a peripheralbus, and a local bus using any of a variety of bus architectures. Thesystem memory includes read-only memory (ROM) 124 and random accessmemory (RAM) 125. A basic input/output system 126 (BIOS), containing thebasic routines that help to transfer information between elements withinthe personal computer 120, such as during start-up, is stored in ROM124.

The personal computer 120 may further include a hard disk drive 127 forreading from and writing to a hard disk (not shown), a magnetic diskdrive 128 for reading from or writing to a removable magnetic disk 129,and an optical disk drive 130 for reading from or writing to a removableoptical disk 131 such as a CD-ROM or other optical media. The hard diskdrive 127, magnetic disk drive 128, and optical disk drive 130 areconnected to the system bus 123 by a hard disk drive interface 132, amagnetic disk drive interface 133, and an optical drive interface 134,respectively. The drives and their associated computer-readable mediaprovide non-volatile storage of computer readable instructions, datastructures, program modules and other data for the personal computer120.

Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 129, and a removable optical disk 131, itshould be appreciated that other types of computer readable media whichcan store data that is accessible by a computer may also be used in theexemplary operating environment. Such other types of media include amagnetic cassette, a flash memory card, a digital video disk, aBernoulli cartridge, a random access memory (RAM), a read-only memory(ROM), and the like.

A number of program modules may be stored on the hard disk, magneticdisk 129, optical disk 131, ROM 124 or RAM 125, including an operatingsystem 135, one or more application programs 136, other program modules137 and program data 138. A user may enter commands and information intothe personal computer 120 through input devices such as a keyboard 140and pointing device 142. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite disk, scanner, or the like.These and other input devices are often connected to the processing unit121 through a serial port interface 146 that is coupled to the systembus, but may be connected by other interfaces, such as a parallel port,game port, or universal serial bus (USB). A monitor 147 or other type ofdisplay device is also connected to the system bus 123 via an interface,such as a video adapter 148. In addition to the monitor 147, a personalcomputer typically includes other peripheral output devices (not shown),such as speakers and printers. The exemplary system of FIG. 6 alsoincludes a host adapter 155, a Small Computer System Interface (SCSI)bus 156, and an external storage device 162 connected to the SCSI bus156.

The personal computer 120 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 149. The remote computer 149 may be another personal computer,a server, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to the personal computer 120, although only a memory storagedevice 150 has been illustrated in FIG. 6. The logical connectionsdepicted in FIG. 6 include a local area network (LAN) 151 and a widearea network (WAN) 152. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets, and the internet.

When used in a LAN networking environment, the personal computer 120 isconnected to the LAN 151 through a network interface or adapter 153.When used in a WAN networking environment, the personal computer 120typically includes a modem 154 or other means for establishingcommunications over the wide area network 152, such as the internet. Themodem 154, which may be internal or external, is connected to the systembus 123 via the serial port interface 146. In a networked environment,program modules depicted relative to the personal computer 120, orportions thereof, may be stored in the remote memory storage device. Itwill be appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computersmay be used.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A cross-platform system, comprising: a first computing device havinga first platform running an application; and a second computing devicehaving a second platform running the application and in communicationwith the first computing device, the second platform being differentfrom the first platform, wherein the first computing device and thesecond computing device are both operable to interact online inreal-time with the application.
 2. The system of claim 1, wherein theapplication is a game title.
 3. The system of claim 1, wherein the firstcomputing device is a gaming console and the second computing device isa general purpose computing device.
 4. The system of claim 3, whereinthe gaming console has a network stack protocol which is ported to thegeneral purpose computing device.
 5. The system of claim 1, wherein thefirst computing device and the second communication device are incommunication with each other directly via a network.
 6. The system ofclaim 1, wherein the first computing device and the second communicationdevice are in communication with each other directly via aclearinghouse.
 7. The system of claim 6, wherein the clearinghousecomprises a multiplayer gaming and content delivery service or system.8. The system of claim 6, wherein the clearinghouse is operable toverify the type of the first computing device and the type of the secondcomputing device.
 9. A method of cross-platform communication,comprising: a first computing device having a first platform running anapplication connecting to a clearinghouse; and a second computing devicehaving a second platform running the application connecting to theclearinghouse, the second platform being different from the firstplatform, wherein the first computing device and the second computingdevice are both operable to interact online in real-time with theapplication.
 10. The method of claim 9, further comprisingauthenticating the first computing device prior to connecting to theclearinghouse.
 11. The method of claim 10, wherein authenticating thefirst computing device comprises: the first computing device logginginto an authentication server and a key server; and providing aclearinghouse ticket and pointer to the first computing device.
 12. Themethod of claim 11, wherein the connecting is performed responsive tothe clearinghouse ticket and the pointer.
 13. The method of claim 9,wherein the application is a game title.
 14. The method of claim 9,wherein the first computing device is a gaming console and the secondcomputing device is a general purpose computing device.
 15. The methodof claim 9, wherein the clearinghouse comprises a multiplayer gaming andcontent delivery service or system.
 16. A method of cross-platformcommunication, comprising: broadcasting an availability request from afirst computing device to a second computing device, the first computingdevice having a first platform and the second computing device having asecond platform different from the first platform; directly connectingthe first computing device and the second computing device; and runningan application on the first computing device and the second computingdevice such that the first computing device and the second computingdevice are both operable to interact online in real-time with theapplication.
 17. The method of claim 16, wherein the first computingdevice transmits a session key to the second computing device prior toconnecting the first computing device and the second computing device.18. The method of claim 16, wherein the application is a game title. 19.The method of claim 16, wherein the first computing device is a gamingconsole and the second computing device is a general purpose computingdevice.
 20. The method of claim 16, wherein the first computing deviceand the second computing device unicast with each other.